class RemoveCommentsPlugin {
  apply(complier) {
    console.log("remove....");
    // 此处emit是事件名称，有很多很多。block中有用到compilation，htmlWebpackPluginBeforeHtmlGeneration
    complier.hooks.emit.tap("RemoveCommentsPlugin", (compilation) => {
      // compilation可以理解为此次打包的上下文
      // assets就是文件名称
      for (const name in compilation.assets) {
        // 输出文件名称
        // console.log(name, "name");
        // 得到文件内容
        if (name.endsWith(".js")) {
          const contents = compilation.assets[name].source();
          const noContents = contents.replace(/\/\*{2,}\/\s?/g, "");
          // webpack要求返回的格式
          compilation.assets[name] = {
            source: () => noContents,
            size: () => noContents.length,
          };
        }
      }
    });
  }
}

module.exports = RemoveCommentsPlugin;
